﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
给定一个n×n的方阵，本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。

输入格式:
输入第一行给出正整数n（1<n≤10）；随后n行，每行给出n个整数，其间以空格分隔。

输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。

输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
*/

#include <stdlib.h>
#include <stdio.h>

typedef struct _Matrix {
	int n;
	int size;
	int* data;
}Matrix;

Matrix matrix_create(int n) {
	Matrix mat;
	mat.n = n;
	mat.size = n * n;
	mat.data = (int*)malloc(sizeof(int) * mat.size);
	return mat;
}

int* matrix_at(Matrix* m, int i, int j) {
	return m->data + i * m->n + j;
}

Matrix matrix;

void read_data() {
	int n;
	scanf("%d", &n);
	matrix = matrix_create(n);
	for (int i = 0; i < n; ++i)
		for (int j = 0; j < n; ++j)
			scanf("%d", matrix_at(&matrix, i, j));
}

void solve() {
	int sum = 0;
	for (int i = 0; i < matrix.n-1; ++i) {
		for (int j = 0; j < matrix.n-1; ++j) {
			if (i + j != matrix.n - 1)
				sum += *matrix_at(&matrix, i, j);
		}
	}
	printf("%d\n", sum);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-55.txt", "r", stdin);
	read_data();
	solve();
	return 0;
}

//freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-50.txt", "r", stdin);
